這篇可能會很短
阿不對 接下來幾篇可能都會很短 (゚∀゚)
上一篇在介紹介面內容的時候,有提到了一堆奇怪的名詞
今天這篇將會好好的來介紹一下他們
沒有屁話可以講,直接開始吧 ~
還記得 第二篇提到的圖形資料庫的核心嗎
那麼他都叫資料庫了,總要有一些可以儲存資料的部分吧
當然有! 這時候就要提到另外兩個一樣重要的元素了
整個 Neo4j 的基礎,由 Node
跟 Relationship
構成
而 Node
跟 Relationship
都各自包含 Lable
跟 Property
但實際的情況略有不同
先來簡單演藝一下 Node 跟 Relationship 的一些組合吧
圖像 | 說明 |
---|---|
這是兩個可愛的節點 | |
他們兩個之間突然有了關係 | |
然而 Node2 其實比較喜歡 Node3 | |
而 Node3 其實對 3P 比較有興趣 | |
這時 Node3 跟 Node2 突然發現原來 Node1 可以自攻自受 | |
於是 Node1 決定攻略自己 ... ( 完結 ) |
感謝 Node1 Node2 Node3 的演出
大家看完這三個 Node 之間的愛情故事之後
有沒有更加了解 Node 跟 Relationship 之間的可能性了呢
Node
之間的Relationship
數量是可以一直增加的但是一條
Relationship
只會有頭尾兩個Node
好險 Node1 自攻自受了呢
首先先切換到上一篇提過的 "Json 顯示模式"
// Node
{
"identity" : 0,
"labels" : [ //Lable
"Person"
],
"properties" : { //Property
"Name" : "Node 1"
}
}
// Relationship
{
"relationship" : {
"identity" : 0,
"start" : 0,
"end" : 1,
"type" : "Connect", //Type
"properties" : {} //Property
}
}
我們分開解釋吧
"labels" : [
"Person"
]
首先 Lable,或是好理解一點,你可以叫他 Tag
看一下 Json 結構,你可以發現他就是一個 String
的陣列
換句話說你是可以加非常多的 Label 在一個 Node 上的
{
"relationship" : {
...
"type" : "Connect",
...
}
}
Relationship Type 我覺得跟 Node Lable 長得很像
因為在下語法的時候,這兩個的用法基本上是一樣的
這部分之後會說明
"properties" : {
"Name" : "Node 1"
}
// or
"properties" : {
"Name" : "Node 3",
"Age" : 17,
"PlayWith" : [
"Node 1",
"Node 2"
]
}
Property 跟標準 Json 沒什麼兩樣
連在下語法的時候,格式也可以說是一模一樣
不過巢狀結構是不允許的
int
or float
string
bool
DateTime
The spatial type Point
相關細節歡迎參考官方文件
插旗時間 |>
寫了這篇才知道原來 Neo4j 可以存 WGS 84
所以我們倒數幾篇的時候就來聊聊這個主題吧
基礎結構講完了 (゚∀゚)
原本是說可能會比較短
結果還是一樣長呢 (゚∀。)
下一篇要準備進入枯燥乏味的程式時間了
究竟會不會打字打到睡著呢w
明天 Neo4j 獨創 Cypher Query Language
期待明日的降臨吧 Ciao!
排版好看的版本同步更新在我的 HackMD